import numpy as np
import pandas as pd
############################################3-9

# arr = np.random.randint(1, 20, size=(3, 3))
# df = pd.DataFrame(arr, columns=['a', 'b', 'c'])
# print('原始数据: \n', df)
# print('每列求和聚合: \n', df.agg('sum'))
# print('每列同时求和及平均值聚合: \n', df.agg(['sum','mean']))
# def rang(arr):
#     return arr.max() - arr.min()
# print('极差: \n', df.agg({0:'sum', 1:'mean', 2:rang} ,            axis=1))
#


# #################################################################3-10
# pd.set_option('display.unicode.east_asian_width', True)
# df = pd.DataFrame({'班级': ['一班', '一班', '一班', '二班', '二班', '二班'],
#                    '姓名': ['刘武', '王振', '赵胜', '赵霞', '方芳', '齐婷'],
#                    '语文': [85, 102, 96, 126, 130, 135],
#                    '数学': [100, 90, 124, 123, 140, 109],
#                    '英语': [83, 110, 123, 103, 135, 90]})
# print('原: \n',df)
# group1 = df.groupby('班级')
# print('按班分: ')
# for i in group1:
#     print(i)
# print('一班: \n', group1.get_group('一班'))
# print('每个班: \n', group1.agg('mean', numeric_only=True))
# group2 = df.groupby({'语文': '总成绩', '数学': '总成绩', '英语': '总成绩'}, axis=1)
# print('标点分组:')
# for i in group2:
#     print(i)
# df['总成绩'] = group2.agg('sum')
# print('添加总成绩后的数据: \n', df)


###########################################################################3-11
pd.set_option('display.unicode.east_asian_width',True)
df = pd.DataFrame({'职业': ['教师', '司机', '编辑'],
                   '城市': ['北京', '青岛', '武汉']})
print('原始数据: \n', df)
print('编码后: \n',pd.get_dummies((df)))
print('设置: \n',pd.get_dummies(df, prefix='居住地', prefix_sep='-',columns=['城市']))